home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.util;
-
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.event.ComponentAdapter;
- import javax.swing.JComponent;
- import javax.swing.JSplitPane;
-
- public class RuleSplitPane extends JSplitPane {
- static final int SIGNIFICANT_MOVE = 5;
- static final double SIGNIFICANT_PCT_MOVE = 0.05;
- boolean fixLeft;
- int fixSize;
- double locPct = (double)0.5F;
- int lastDividerLocation = 0;
- ResizeDetector resizeDetector = new ResizeDetector(this);
- ComponentAdapter resizeListener = new 2(this);
-
- public RuleSplitPane(int var1, Component var2, Component var3) {
- super(var1, var2, var3);
- var2.addComponentListener(this.resizeDetector);
- }
-
- protected int getWhich(Dimension var1) {
- return super.orientation == 1 ? var1.width : var1.height;
- }
-
- public void setLeftComponent(Component var1) {
- Component var2 = ((JSplitPane)this).getLeftComponent();
- super.setLeftComponent(var1);
- if (var2 != null) {
- var2.removeComponentListener(this.resizeDetector);
- }
-
- if (var1 != null) {
- var1.addComponentListener(this.resizeDetector);
- }
-
- ((JComponent)this).revalidate();
- ((Component)this).repaint();
- }
-
- public void setRightComponent(Component var1) {
- super.setRightComponent(var1);
- ((JComponent)this).revalidate();
- ((Component)this).repaint();
- }
-
- protected int getSpan() {
- return this.getWhich(((Component)this).getSize()) - super.dividerSize;
- }
-
- public void addNotify() {
- super.addNotify();
- ((Component)this).addComponentListener(new 1(this));
- }
-
- public void removeNotify() {
- super.removeNotify();
- ((Component)this).removeComponentListener(this.resizeListener);
- }
-
- public void updateRule(int var1) {
- if (this.locPct >= (double)0) {
- if (Math.abs((double)var1 / (double)this.getSpan() - this.locPct) < 0.05) {
- return;
- }
-
- this.locPct = (double)var1 / (double)this.getSpan();
- } else if (this.fixLeft) {
- if (Math.abs(this.fixSize - var1) < 5) {
- return;
- }
-
- this.fixSize = var1;
- } else {
- if (Math.abs(this.fixSize - (this.getSpan() - var1)) < 5) {
- return;
- }
-
- this.fixSize = this.getSpan() - var1;
- }
-
- }
-
- public void setDividerRule(double var1) {
- this.locPct = var1;
- }
-
- public void setDividerRule(boolean var1, int var2) {
- this.fixLeft = var1;
- this.fixSize = var2;
- this.locPct = (double)-1.0F;
- }
-
- public int getDividerRulePos() {
- return this.fixSize;
- }
-
- public double getDividerRulePct() {
- return this.locPct;
- }
-
- public void resetDividerLoc() {
- int var1;
- if (this.locPct >= (double)0) {
- var1 = (int)((double)this.getSpan() * this.locPct);
- } else if (this.fixLeft) {
- var1 = this.fixSize;
- } else {
- var1 = this.getSpan() - this.fixSize;
- }
-
- this.lastDividerLocation = var1;
- ((JSplitPane)this).setDividerLocation(var1);
- }
- }
-